function initShader(gl, VERTEX_SHADER_SOURCE, FRAGMENT_SHADER_SOURCE) {
    // step1: 创建着色器
    const vertexShader = gl.createShader(gl.VERTEX_SHADER) // 顶点着色器
    const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER) // 片元着色器

    // step2: 指定着色器的源程序是什么
    gl.shaderSource(vertexShader, VERTEX_SHADER_SOURCE)  // 指定顶点着色器的源码
    gl.shaderSource(fragmentShader, FRAGMENT_SHADER_SOURCE) // 指定片元着色器的源码

    // step3: 编译着色器
    gl.compileShader(vertexShader)
    gl.compileShader(fragmentShader)

    // step4: 创建一个程序对象
    const program = gl.createProgram()

    // step5: 给程序对象指定着色器
    gl.attachShader(program, vertexShader) // 指定顶点着色器
    gl.attachShader(program, fragmentShader) // 提定片元着色器

    // step6: 将JS和webgl关联
    gl.linkProgram(program)

    // step7: 使用程序对象
    gl.useProgram(program)

    // step8:返回
    return program
}
